﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ucb.Workshop.Business;

namespace Ucb.Workshop.Presenters
{
    public class RegistroUsuarioPresenter
    {
        private IUsuarioView view;

        public IUsuarioView View { get { return view; } }

        public RegistroUsuarioPresenter(IUsuarioView view)
        {
            this.view = view;
        }

        public void OnRegistroUsuario()
        {
            if (HayValoresValidos())
            {
                User usuario = ObtenerUsuarioDeLaVista();
                InsertarUsuarioABaseDeDatos(usuario);
            }
            else
            {
                throw new Exception("Se requiere que todos los campos tengan valores...");
            }
        }

        private void InsertarUsuarioABaseDeDatos(User usuario)
        {
            usuario.Register();
        }

        private User ObtenerUsuarioDeLaVista()
        {
            User unUsuario = new User();

            unUsuario.Address = View.Direccion;
            unUsuario.Apellido = View.Apellido;
            unUsuario.Email = View.Email;
            unUsuario.Estado = View.Estado;
            unUsuario.Login = View.Login;
            unUsuario.Name = View.Nombre;
            unUsuario.Password = View.Password;
            unUsuario.Telephone = View.Telefono;

            return unUsuario;
        }

        private bool HayValoresValidos()
        {
            bool resultado = true;

            if (String.IsNullOrEmpty(View.Apellido) && String.IsNullOrEmpty(View.Direccion) && String.IsNullOrEmpty(View.Email)
                && String.IsNullOrEmpty(View.Estado) && String.IsNullOrEmpty(View.Nombre) && String.IsNullOrEmpty(view.Login)
                && String.IsNullOrEmpty(View.Password) && String.IsNullOrEmpty(View.Telefono))
            {
                resultado = false;
            }

            return resultado;
        }

    }
}
